Embedded systems comprise special purposes systems requiring high performance but having relatively few dedicated resources. For example, embedded devices typically comprise relatively little memory, a low performance processor, few if any standard utilities, and no hard disks.
In addition, embedded devices typically do not comprise a conventional operating system. A conventional operating system is written for flexibility. An embedded system, however, performs a single purpose. Therefore, such an embedded device operates using a device microcode written to optimize the device's single function.
In order to monitor the performance of an embedded device, the device microcode includes instructions for logging trace data. In the event of a device error, that logged trace data can be analyzed to determine the cause of the error. Periodically during the operation of the embedded device, a trace statement is issued which causes, inter alia, the parameters the device is executing on at that point in time to be written to a memory device.
If an error is detected, the trace data is downloaded, and is used to determine the source of the error. What is needed is a method to form and save such trace which involves minimal usage of embedded device resources. Applicants' apparatus and method generates and saves trace data while requiring minimal device resources, and such that the trace data can be retrieved even if the embedded device resets.